using System.Runtime.Serialization;
using System;
using RestAPICore;
using System.Linq;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Threading;
using System.IO;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace MyContract
{



	
				
	[DataContract]
	public class JsonTestGetIncludeDateTimeFieldResponse: INotifyPropertyChanged
	{
		public event PropertyChangedEventHandler  PropertyChanged ;

		string _Id;
		[DataMember(Name = "Id")]
		public string Id
		{ 
			get { return _Id;} 
			set 
			{ 
				_Id = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("Id"));
			}
		}

		string _Date;
		[DataMember(Name = "Date")]
		public string Date
		{ 
			get { return _Date;} 
			set 
			{ 
				_Date = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("Date"));
			}
		}

	}

				
				
	[DataContract]
	public class JsonTestTestFileResponse: INotifyPropertyChanged
	{
		public event PropertyChangedEventHandler  PropertyChanged ;

		double _id;
		[DataMember(Name = "id")]
		public double Id
		{ 
			get { return _id;} 
			set 
			{ 
				_id = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("Id"));
			}
		}

		string _desc;
		[DataMember(Name = "desc")]
		public string Desc
		{ 
			get { return _desc;} 
			set 
			{ 
				_desc = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("Desc"));
			}
		}

		double _FileCount;
		[DataMember(Name = "FileCount")]
		public double FileCount
		{ 
			get { return _FileCount;} 
			set 
			{ 
				_FileCount = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("FileCount"));
			}
		}

		[DataContract]
		public class JsonTestTestFileResponseFilesArrayItem: INotifyPropertyChanged
		{
			public event PropertyChangedEventHandler  PropertyChanged ;

			double _ContentLength;
			[DataMember(Name = "ContentLength")]
			public double ContentLength
			{ 
				get { return _ContentLength;} 
				set 
				{ 
					_ContentLength = value;
					if ( this.PropertyChanged != null )
						this.PropertyChanged (this,new PropertyChangedEventArgs ("ContentLength"));
				}
			}

			string _ContentType;
			[DataMember(Name = "ContentType")]
			public string ContentType
			{ 
				get { return _ContentType;} 
				set 
				{ 
					_ContentType = value;
					if ( this.PropertyChanged != null )
						this.PropertyChanged (this,new PropertyChangedEventArgs ("ContentType"));
				}
			}

			string _FileName;
			[DataMember(Name = "FileName")]
			public string FileName
			{ 
				get { return _FileName;} 
				set 
				{ 
					_FileName = value;
					if ( this.PropertyChanged != null )
						this.PropertyChanged (this,new PropertyChangedEventArgs ("FileName"));
				}
			}

		}
		JsonTestTestFileResponseFilesArrayItem[] _Files;
		[DataMember(Name = "Files")]
		public JsonTestTestFileResponseFilesArrayItem[] Files
		{ 
			get { return _Files;} 
			set 
			{ 
				_Files = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("Files"));
			}
		}

	}

				
				
	[DataContract]
	public class JsonTestTestGetResponse: INotifyPropertyChanged
	{
		public event PropertyChangedEventHandler  PropertyChanged ;

		double _id;
		[DataMember(Name = "id")]
		public double Id
		{ 
			get { return _id;} 
			set 
			{ 
				_id = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("Id"));
			}
		}

		string _desc;
		[DataMember(Name = "desc")]
		public string Desc
		{ 
			get { return _desc;} 
			set 
			{ 
				_desc = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("Desc"));
			}
		}

		double _FileCount;
		[DataMember(Name = "FileCount")]
		public double FileCount
		{ 
			get { return _FileCount;} 
			set 
			{ 
				_FileCount = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("FileCount"));
			}
		}

		[DataContract]
		public class JsonTestTestGetResponseFilesArrayItem: INotifyPropertyChanged
		{
			public event PropertyChangedEventHandler  PropertyChanged ;

			double _ContentLength;
			[DataMember(Name = "ContentLength")]
			public double ContentLength
			{ 
				get { return _ContentLength;} 
				set 
				{ 
					_ContentLength = value;
					if ( this.PropertyChanged != null )
						this.PropertyChanged (this,new PropertyChangedEventArgs ("ContentLength"));
				}
			}

			string _ContentType;
			[DataMember(Name = "ContentType")]
			public string ContentType
			{ 
				get { return _ContentType;} 
				set 
				{ 
					_ContentType = value;
					if ( this.PropertyChanged != null )
						this.PropertyChanged (this,new PropertyChangedEventArgs ("ContentType"));
				}
			}

			string _FileName;
			[DataMember(Name = "FileName")]
			public string FileName
			{ 
				get { return _FileName;} 
				set 
				{ 
					_FileName = value;
					if ( this.PropertyChanged != null )
						this.PropertyChanged (this,new PropertyChangedEventArgs ("FileName"));
				}
			}

		}
		JsonTestTestGetResponseFilesArrayItem[] _Files;
		[DataMember(Name = "Files")]
		public JsonTestTestGetResponseFilesArrayItem[] Files
		{ 
			get { return _Files;} 
			set 
			{ 
				_Files = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("Files"));
			}
		}

	}

				
				
	[DataContract]
	public class JsonTestTestNumResponseArrayItem: INotifyPropertyChanged
	{
		public event PropertyChangedEventHandler  PropertyChanged ;

		[DataContract]
		public class JsonTestTestNumResponseArrayItemAArrayItem: INotifyPropertyChanged
		{
			public event PropertyChangedEventHandler  PropertyChanged ;

			[DataContract]
			public class JsonTestTestNumResponseArrayItemAArrayItemAArrayItem: INotifyPropertyChanged
			{
				public event PropertyChangedEventHandler  PropertyChanged ;

				[DataContract]
				public class JsonTestTestNumResponseArrayItemAArrayItemAArrayItemA: INotifyPropertyChanged
				{
					public event PropertyChangedEventHandler  PropertyChanged ;

					double _xxx;
					[DataMember(Name = "xxx")]
					public double Xxx
					{ 
						get { return _xxx;} 
						set 
						{ 
							_xxx = value;
							if ( this.PropertyChanged != null )
								this.PropertyChanged (this,new PropertyChangedEventArgs ("Xxx"));
						}
					}

				}
				JsonTestTestNumResponseArrayItemAArrayItemAArrayItemA _a;
				[DataMember(Name = "a")]
				public JsonTestTestNumResponseArrayItemAArrayItemAArrayItemA A
				{ 
					get { return _a;} 
					set 
					{ 
						_a = value;
						if ( this.PropertyChanged != null )
							this.PropertyChanged (this,new PropertyChangedEventArgs ("A"));
					}
				}

			}
			JsonTestTestNumResponseArrayItemAArrayItemAArrayItem[] _a;
			[DataMember(Name = "a")]
			public JsonTestTestNumResponseArrayItemAArrayItemAArrayItem[] A
			{ 
				get { return _a;} 
				set 
				{ 
					_a = value;
					if ( this.PropertyChanged != null )
						this.PropertyChanged (this,new PropertyChangedEventArgs ("A"));
				}
			}

		}
		JsonTestTestNumResponseArrayItemAArrayItem[] _a;
		[DataMember(Name = "a")]
		public JsonTestTestNumResponseArrayItemAArrayItem[] A
		{ 
			get { return _a;} 
			set 
			{ 
				_a = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("A"));
			}
		}

	}
	[CollectionDataContract]
	public class JsonTestTestNumResponse : List<JsonTestTestNumResponseArrayItem>
	{
	}

				
				
	[DataContract]
	public class JsonTestTestPostResponse: INotifyPropertyChanged
	{
		public event PropertyChangedEventHandler  PropertyChanged ;

		double _id;
		[DataMember(Name = "id")]
		public double Id
		{ 
			get { return _id;} 
			set 
			{ 
				_id = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("Id"));
			}
		}

		string _desc;
		[DataMember(Name = "desc")]
		public string Desc
		{ 
			get { return _desc;} 
			set 
			{ 
				_desc = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("Desc"));
			}
		}

		double _FileCount;
		[DataMember(Name = "FileCount")]
		public double FileCount
		{ 
			get { return _FileCount;} 
			set 
			{ 
				_FileCount = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("FileCount"));
			}
		}

		[DataContract]
		public class JsonTestTestPostResponseFilesArrayItem: INotifyPropertyChanged
		{
			public event PropertyChangedEventHandler  PropertyChanged ;

			double _ContentLength;
			[DataMember(Name = "ContentLength")]
			public double ContentLength
			{ 
				get { return _ContentLength;} 
				set 
				{ 
					_ContentLength = value;
					if ( this.PropertyChanged != null )
						this.PropertyChanged (this,new PropertyChangedEventArgs ("ContentLength"));
				}
			}

			string _ContentType;
			[DataMember(Name = "ContentType")]
			public string ContentType
			{ 
				get { return _ContentType;} 
				set 
				{ 
					_ContentType = value;
					if ( this.PropertyChanged != null )
						this.PropertyChanged (this,new PropertyChangedEventArgs ("ContentType"));
				}
			}

			string _FileName;
			[DataMember(Name = "FileName")]
			public string FileName
			{ 
				get { return _FileName;} 
				set 
				{ 
					_FileName = value;
					if ( this.PropertyChanged != null )
						this.PropertyChanged (this,new PropertyChangedEventArgs ("FileName"));
				}
			}

		}
		JsonTestTestPostResponseFilesArrayItem[] _Files;
		[DataMember(Name = "Files")]
		public JsonTestTestPostResponseFilesArrayItem[] Files
		{ 
			get { return _Files;} 
			set 
			{ 
				_Files = value;
				if ( this.PropertyChanged != null )
					this.PropertyChanged (this,new PropertyChangedEventArgs ("Files"));
			}
		}

	}

				
}
